package com.rong.structural.flyweightModel;

/**
 * 享元模式测试
 */
public class Client {
    public static void main(String[] args) {

        // 创建一个工厂
        WebSiteFactory factory = new WebSiteFactory();

        // 新闻形式发布网站
        Website website = factory.getWebSite("新闻");
        website.use(new User("张三"));

        // 论坛形式发布网站
        Website website1 = factory.getWebSite("论坛");
        website1.use(new User("李四"));

        // 另一个也想以论坛形式使用的对象
        Website website2 = factory.getWebSite("论坛");
        website2.use(new User("王五"));

        // 避免相同类型的网站重复创建
        System.out.println("网站的分类一共有：" + factory.getWebSum() + "种");
        System.out.println("============================");
        // jdk中的享元模式
        Integer x = Integer.valueOf(100);
        Integer y = Integer.valueOf(100);
        Integer z = new Integer(100);
        Integer w = new Integer(100);
        System.out.println(x == y); // true 在-128-127之间时 使用的就是享元模式(执行速度就快) 若不在该范围者任然new新对象
        System.out.println(x == z);
        System.out.println(z == w);
        System.out.println(x.equals(z));

        Integer i = Integer.valueOf(200);
        Integer j = Integer.valueOf(200);
        System.out.println(i == j); //false


    }
}
